(defn do-nothing
  [x] x)
(source identity)

(defn always-thing [& x]
  :thing)

(defn make-thingy [x]
  (fn [& args] x))
(source constantly)

(defn triplicate [f]
  (apply f [])
  (apply f [])
  (apply f []))

(defn opposite [f]
  (fn [& args]
    (not (apply f args))))

(defn triplicate2 [f & args]
  (triplicate #(f args))))

(defn calc [x]
  (+ (Math/pow (Math/sin x) 2)
     (Math/pow (Math/cos x) 2)))

(defn http-get [url]
  (slurp (openstream (new java.net.URL) url)))

(defn one-less-arg [f x]
  (fn [& args]
    (apply f x args)))

(defn two-fns [f g]
  (fn [x]
    (f (g x))))
